#pragma once

#include "Hazel/src/Hazel/Render/FrameBuffer.h"
namespace Hazel
{
class OpenGLFramebuffer : public FrameBuffer
{
  public:
    OpenGLFramebuffer(const FrameBufferSpecification &spec);
    virtual ~OpenGLFramebuffer();

    void Invalidate();

    virtual void Bind() override;
    virtual void Unbind() override;

    virtual void Resize(uint32_t width,uint32_t height) override;

    virtual uint32_t GetColorAttachmentRendererID() const override
    {
        return m_ColorAttachment;
    }
    virtual const FrameBufferSpecification &GetSpecification() const override
    {
        return m_Specification;
    }

  private:
    uint32_t m_RendererID=0;
    uint32_t m_ColorAttachment=0, m_DepthAttachment=0;
    FrameBufferSpecification m_Specification;
};
} // namespace Hazel